package com.heima.pattern.factory.factory_method;

/**
 * 抽象工厂：如果增加新的种类咖啡，只需要增加一个这个接口的实现类就行。
 *
 * 优点：
 * - 用户只需要知道具体的工厂名字就能得到所需要的产品，无需知道产品的具体创建过程
 * - 在系统增加新的产品时只需要添加具体产品类对应的具体工厂类，无需对原工厂类进行任何修改，满足开闭原则
 *
 * 缺点：
 * - 每增加一个产品就要增加一个具体产品类和一个对应的具体工厂类，这增加了系统的复杂性
 */
public interface CoffeeFactory {

    //创建咖啡对象的方法
    Coffee createCoffee();
}
